import requests
from utils.handle_yml import get_yml_data
import inspect
from configs.config import HOST
class BaseApi: # 基类，后面所有的方法都可继承它
    # 定义一个初始化方法，读取yml文件
    def __init__(self):
        self.data = get_yml_data('../configs/ApiConfig.yml')[self.__class__.__name__] # 读取yml文件中类的名称
        # print(self.data)
    # 定义一个request方法
    def request_send(self,data = None,json = None,files = None,headers =None):
        funcName = inspect.stack()[1][3]    # 在栈中取出方法名称，[1][3]是固定写法，比如这里根据ApiConfig.yml中类名称取方法名称
        # 其他py文件中调用这个方法时，所在的类及函数名，要与ApiConfig.yml中保持一致，才能拿到数据
        configData = self.data[funcName]    # 取到某个方法名称的配置数据

        resp = requests.request(method = configData['method'],url = f"{HOST}{configData['url']}",data = data ,json = json , files =files,headers =headers)
        return resp

